// 导入nodejs内置模块path来处理路径问题，不能通过拼接字符串的方式来处理路径
// 因为nodejs是跨平台运行的，不同的系统，window，linux路径分隔符是不一样的
const path=require('path')
const MyPlugin=require('./plugins/MyPlugin.js')
const {BundleAnalyzerPlugin}=require("webpack-bundle-analyzer")
const htmlplugin=require("html-webpack-plugin")
module.exports={
    //添加配置项，修改webpack打包规则
    // entry:"./src/index1.html",//配置打包的文件入口
    entry:{
        text1:"./src/index1.js",//key就是index1.js打包生成的chunk的名称
        text2:"./src/index2.js"
    },
    output:{ //打包后的输出文件
        path:path.join(__dirname,'2406b'),//打包后端输出目录
        filename:'[name]-[hash:8].js',//打包后的文件名,[hash:8]webpack会对文件内容进行
        clean:true,//清除上一次打包后的文件
        // asyncChunks:false,//取消webpack的默认打包规则，对于异步加载的模块，不生成chuncks
    },
    // 配置loader
    module:{
        rules:[
            //一个对象配置一个loader
            {
                test:/\.js$/,//是一个正则表达式,指定配置的loader 用来处理那种类型的文件
                use:[path.join(__dirname,'loaders/Myloader.js')]//当匹配到.js文件后，使用哪种loader，处理对应类型的文件
            },
            {
                test:/\.css$/,
                use:['style-loader','css-loader']//执行顺序，从后往前
            },
        ]
    },
    // 注册插件
    plugins:[
        new MyPlugin(),
        new BundleAnalyzerPlugin(),
        new htmlplugin({
            template:"./public/index.html"//需要指定html文件路径
        })
    ]
}

// import path from 'path'
// import { fileURLToPath } from 'url'
// const folder=path.dirname(fileURLToPath(import.meta.url))
// export default{
//     entry:"./src/index1.js",//配置打包的文件入口
//     output:{ //打包后的输出文件
//         path:path.join(folder,'2406b'),//打包后端输出目录
//         filename:'a-[hash:8].js',//打包后的文件名,[hash:8]webpack会对文件内容进行
//         clean:true//清除上一次打包后的文件
//         }
// }